@南馆潇湘
2年前 提问
1个回答

DES 操作模式有哪些

007bug
2年前

使用DES的数据加密专家有五种不同的操作模式可供选择:

  • 电子密码本(ECB):这是JAVA封装的DES算法的默认模式,就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,则补足8个字节(注意:这里就涉及到数据补位了)进行计算,之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。

  • 加密块链(CBC):密文分组链接方式,这是.NET封装的DES算法的默认模式,加密步骤如下:

    • 首先将数据按照8个字节一组进行分组得到D1D2……Dn(若数据不是8的整数倍,就涉及到数据补位了)

    • 第一组数据D1与向量I异或后的结果进行DES加密得到第一组密文C1(注意:这里有向量I的说法,ECB模式下没有使用向量I)

    • 第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2

    • 之后的数据以此类推,得到Cn

    • 按顺序连为C1C2C3……Cn即为加密结果

  • 密码反馈(CFB):前面的密文成为加密算法的输入,产生伪随机输出,然后将其与纯文本进行XOR运算,构建下一个密文单元。

  • 输出反馈(OFB):类似于CFB,不同之处在于加密算法输入是前面DES的输出。

  • 计数器(CTR):每个明文块与加密的计数器进行异或运算。然后为每个后续块递增计数器。